package com.example.demo.mapper;

import com.example.demo.client.vm.sysbasequery.UserGroupTreeVm;
import com.example.demo.web.rest.evt.IdEvt;
import com.example.demo.web.rest.evt.RelationEvt;
import com.example.demo.web.rest.evt.ResourceRelationEvt;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * 用户组管理
 *
 * @Author zmf
 * @Date 2018/9/1  19:23
 */
@Mapper
public interface UserGroupMapper {
    /**
     * 添加用户组和用户关系
     * @param evt
     * @return
     */
    Integer addGroupUserByGroupIdAndUserIds(RelationEvt evt);

    /**
     * 删除用户和用户组关系
     * @param evt
     * @return
     */
    Integer delGroupUserByGroupIdAndUserIds(RelationEvt evt);

    /**
     * 删除用户组与角色的关系
     * @param evt
     * @return
     */
    Integer delGroupRoleByGroupIdAndRoleIds(RelationEvt evt);

    /**
     * 添加用户组和角色关系
     * @param evt
     * @return
     */
    Integer addGroupRoleByGroupIdAndRoleIds(RelationEvt evt);

    /**
     * 删除用户组和权限关系
     * @param evt
     * @return
     */
    Integer delGroupPermissionByGroupIdAndPermissionIds(RelationEvt evt);

    /**
     * 添加用户组和权限关系
     * @param evt
     * @return
     */
    Integer addGroupPermissionByGroupIdAndPermissionIds(RelationEvt evt);

    /**
     * 删除用户组与资源权限关系
     * @param evt
     * @return
     */
    Integer delGroupResource(ResourceRelationEvt evt);

    /**
     * 增加用户组与资源关系
     * @param evt
     * @return
     */
    Integer addGroupResource(ResourceRelationEvt evt);

    List<UserGroupTreeVm> getParentGroupTree(IdEvt evt);

}
